#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int f[2][N],ans[N],n,T,mod;
inline void Add(int& x, int y){ x+=y; x-=x>=mod?mod:0; }
int main(){
	freopen("moon.in","r",stdin);
	freopen("moon.out","w",stdout);
	scanf("%d%d",&T,&mod); f[0][0]=1;
	for (int i=1; i<=450; i++){
		for (int j=1; j<=200000; j++){
			if (j>=2*i-1) Add(f[i&1][j],f[(i&1)^1][j-2*i+1]);
			if (j>=2*i) Add(f[i&1][j],f[i&1][j-2*i]);
			Add(ans[j],f[i&1][j]);
		}
		for (int j=0; j<=200000; j++) f[(i&1)^1][j]=0;
	}
	for (; T; T--){
		scanf("%d",&n);
		printf("%d\n",ans[n]);
	}
}
/*
5 998244353
9
11
20
25
60

3 991145149
36
2995
199808
*/
